package com.ruoyi.system.api.service;

import com.ruoyi.system.api.ResponseWithData;
import com.ruoyi.system.api.domain.Annex;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.util.List;

/**
 * 附件Service接口
 * 
 * @author shihx
 * @date 2020-03-03
 */
public interface IAnnexService 
{
    /**
     * 查询附件
     * 
     * @param id 附件ID
     * @return 附件
     */
    public Annex selectAnnexById(Long id);

    /**
     * 查询附件列表
     * 
     * @param annex 附件
     * @return 附件集合
     */
    public List<Annex> selectAnnexList(Annex annex);

    /**
     * 新增附件
     * 
     * @param annex 附件
     * @return 结果
     */
    public int insertAnnex(Annex annex);

    /**
     * 修改附件
     * 
     * @param annex 附件
     * @return 结果
     */
    public int updateAnnex(Annex annex);

    /**
     * 批量删除附件
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteAnnexByIds(String ids);

    /**
     * 删除附件信息
     * 
     * @param id 附件ID
     * @return 结果
     */
    public int deleteAnnexById(Long id);

    /**
     *  根据helpid、serviceNo查询附件信息
     *
     * @param serviceNo serviceNo
     * @param helpId 辅助id
     * @return com.ruoyi.system.api.ResponseWithData<?>
     * @author yzg
     * @date 2020-03-03 16:10
     */
    public ResponseWithData<?> selectAnnexsByServiceNoAndHelpId(String serviceNo, String helpId);

    /**
     *  服务报告附件上传 单文件上传
     *
     * @param file
     * @param request
     * @return com.ruoyi.system.api.ResponseWithData<?>
     * @author yzg
     * @date 2020/3/12 3:45 下午
     */
    public ResponseWithData<?> uploadFile(MultipartFile file, HttpServletRequest request) throws IOException;

    /**
     * 三个报告附件上传
     * @param file
     * @param request
     * @return
     * @throws IOException
     */
    public ResponseWithData<?> uploadFileReport(MultipartFile file, HttpServletRequest request) throws IOException;

    /**
     * 备件还货附件上传
     * @param file
     * @param request
     * @return
     * @throws IOException
     */
    ResponseWithData<?> uploadFileParts(MultipartFile file, HttpServletRequest request) throws IOException;

    /**
     * 三个报告附件上传
     * @param file
     * @param request
     * @return
     * @throws IOException
     */
    ResponseWithData<?> uploadWorkReportPic(MultipartFile file, HttpServletRequest request) throws IOException;
    
    
    /**
     * 获取服务通知工作报告附件，签字验收报告附件，客户现场确认单
     * @param serviceNo
     * @return
     */
    ResponseWithData<?> getServiceFileHandle(String serviceNo);

    /**
     * 2.77	获取服务通知关联合同信息接口
     * @param serviceNo
     * @return
     */
    ResponseWithData<?> getServiceContractHandle(String serviceNo);

}
